import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
// 判断设备中是否包含userInfo的数据，并且格式化。保证data是一个对象
let data = JSON.parse(localStorage.getItem('userInfo')) || {};
export default new Vuex.Store({
  // 初始化数据
  state: {
    // 存储用户信息，是登录接口返回的整个list
    userInfo: data
  },
  // 修改数据的唯一方式
  mutations: {
    // 登录成功后，保存用户信息
    saveUserInfo(state, userInfo) {
      // 第一个userInfo是state中的数据
      // 第二个userInfo是传进来的数据
      state.userInfo = userInfo;
      // 本地存储保存一份,目的是持久化存储，避免刷新丢失数据
      localStorage.setItem('userInfo', JSON.stringify(userInfo));
    },
    // 清空用户信息
    clearUserInfo(state) {
      // 清空vuex中的用户信息
      state.userInfo = {};
      // 清空localStorage中的用户信息
      localStorage.removeItem('userInfo');
    }
  },
  // 计算属性
  getters: {
    menuList(state) {
      return state.userInfo.menus
    }
  },
  actions: {
  },
  modules: {
  }
})
